圖/本報資料庫
科技生活

·a few seconds ago·何映辰
#谷歌#Gemini#Rust#C語言#零日漏洞#人工智慧
圖/本報資料庫
圖/本報資料庫
商傳媒|何映辰/台北報導
摘要

谷歌運用其 Gemini 人工智慧模型將 C 語言函式庫移植到記憶體安全的 Rust 語言,在過程中意外發現並防堵了原 C 函式庫中的零日漏洞。此案例突顯 AI 在提升軟體開發安全性與效率上的巨大潛力,對台灣軟體工程界帶來重要啟示。

谷歌(Google)近日展示一項應用其 Gemini 人工智慧模型,將傳統 C 語言函式庫轉換為記憶體安全的 Rust 語言的專案。此專案在移植過程中,成功發現了一個廣為使用的影像處理函式庫 GIFLIB 中的零日漏洞(zero-day vulnerability),即尚未被軟體開發者或大眾發現,因此也來不及修補的安全弱點。該漏洞在被公開前已被防堵,突顯 AI 在提升軟體開發安全與效率上的潛力。

在軟體開發領域,C 語言雖然高效,但其記憶體管理方式常導致記憶體損毀(memory corruption)等安全漏洞,據統計,高達七成的嚴重安全漏洞都與此有關。為解決此問題,谷歌工程師 Bastian Kersting 和 Max Hils 透過 Gemini AI 展開一項三階段的自動化程式碼移植工作,目標是將包含約 3,000 行 C 程式碼的 GIFLIB 函式庫,轉換為以記憶體安全聞名的 Rust 語言。

轉換流程首先將 GIFLIB 的 C 程式碼輸入 Gemini,要求其生成對應的 Rust 程式碼。由於需要確保與既有 C 程式碼的介面相容,團隊保留了原始的符號定義。儘管 AI 初步產出的程式碼在處理指標(pointer)所有權和生命週期(lifetime)等複雜問題上仍需人工介入修正,特別是外部函式介面(FFI)與 C 程式碼互動的部分,但 Gemini 仍大幅加速了轉換過程。

為確保轉換後的 Rust 程式碼與原 C 程式碼行為一致,谷歌建立了一套嚴謹的驗證流程。他們利用 Gemini 進行迭代修補,並透過差異測試(differential testing)比對兩者行為。該系統解碼超過 3,000 萬個真實 GIF 檔案,確保位元層級的渲染一致性。在一項歷時六天、執行 2 億次迭代的自動模糊測試(fuzzing)中,該驗證流程意外發現了 GIFLIB 原始 C 程式碼中的兩個問題:一個是 LZW 解壓縮器的邊緣情況處理不當,另一個則是先前修補版本引入的記憶體越界寫入漏洞。

該記憶體越界寫入漏洞隨後被外部資安研究人員通報為 CVE-2026-26740,但由於谷歌已將生產系統替換為 Rust 版本,因此其節點未受此漏洞影響。這證明記憶體安全的語言能在漏洞被公開前提供結構性防禦。Rust 版本不僅保持了與 C 版本相當的執行效能,其記憶體安全保證也讓谷歌得以移除過去為隔離影像解碼任務而設置的作業系統沙盒(sandboxes),進而降低了尾部延遲。谷歌已將這項成果開源為 giflib-rs,作為自動語言轉換的參考實作。對台灣軟體開發者而言,此案例預示 AI 輔助程式開發將能有效提升程式碼品質與安全性,同時加速舊有系統的現代化進程。